# 在嵌套函数中，若需要修改外部函数的变量，则需要使用nonlocal关键
def out_func():
    a = 10
    print('out_func-a-1:', a)

    def in_func():
        # 默认是声明一个局部变量a，如果使用了 nonlocal声明，则修改外部函数的变量a
        nonlocal a
        a = 20
        print('in_func-a:', a)
    in_func()
    print('out_func-a-2:', a)

if __name__ == '__main__':
    out_func()
    # 无法在外部调用函数的变量a
    # print('全局-a:', a)